package models

import (
	"errors"
	"gorm.io/gorm"
)

type AgentSettlementBank struct {
	Model
	No      string `json:"no" gorm:"comment:'银行卡号'"`
	BankId  int    `json:"bank_id" gorm:"comment:'银行id bankcode表id'"`
	AgentId int    `json:"agent_id" gorm:"comment:'代理商id'"`
}

// BankAdd 添加银行卡
func BankAdd(bank *AgentSettlementBank) error {
	var existingBank AgentSettlementBank
	// 先根据 agent_id 查询是否存在
	if err := db.Where("agent_id =?", bank.AgentId).First(&existingBank).Error; err == nil {
		// 如果存在，更新现有记录
		existingBank.No = bank.No
		existingBank.BankId = bank.BankId
		return db.Save(&existingBank).Error
	} else if errors.Is(err, gorm.ErrRecordNotFound) {
		// 如果不存在，创建新记录
		return db.Create(&bank).Error
	} else {
		// 其他错误
		return err
	}
}
